Relayed cspf computation for multiple areas and multiple autonomous systems

ABSTRACT

A method in a router for participating in computation of a constraint-based label switched path (LSP) that spans a plurality of areas to reach a destination is described. The method comprises computing a path segment that meets a set of one or more constraints to at least one border router of the first area, transmitting a path computation request message to a path computation element in a second one of the plurality of areas, receiving a path computation reply message from the path computation element, and stitching at least one of the set of computed path segments that are specified in the path computation reply message with the path segment computed by the router to form at least part of the constraint-based LSP.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/384,774, filed Sep. 21, 2010; and U.S. application Ser. No.12/983,123, filed Dec. 31, 2010, which are hereby incorporated byreference.

FIELD

Embodiments of the invention relate to the field of networking; and morespecifically, for computing a constraint-based label switched path (LSP)that spans across multiple areas and/or multiple autonomous systems.

BACKGROUND

The demand for the ability for computing label switched paths (LPSs)that span across multiple areas or multiple autonomous systems hasevolved from an academic discussion to a feature request of a carriernetwork. There have been a few solutions that have been proposed forcomputing constraint based LSPs that span across multiple areas ormultiple autonomous systems.

In one proposed solution, a global TE (traffic engineering) database isused. While the global TE database is a simple solution for computingLSPs that span across multiple areas or multiple ASes, it is prohibitivebecause the global TE database may be too large and therefore negatesthe purpose of having multiple areas or multiple ASes, and it violatesthe information hiding and confidentiality requirement, which isunacceptable by Internet Service Providers (ISPs).

Another proposed solution uses a crankback method. The crankback methodis more practical than the global TE database solution as it is anexhaustive search based mechanism and will find an LSP if it exists.However, the crankback method also includes obvious drawbacks. Onedrawback is that the crankback method does not scale because it oftenrequires, and therefore wastes, more than one tryout to find a qualifiedLSP; and it is RSVP (Resource Reservation Protocol) signaling basedwhich is by its nature poor in scaling. Another drawback is that theextra signaling messages used in the crankback method adds burdens onthe existing network. Another drawback is that the path, if found, isnot guaranteed to be optimal. Another drawback is that the crankbackmethod is labor intensive in that it requires many manual configurationsto specify border routers. Finally, another drawback is that thecrankback method requires substantial RSVP changes, both in protocol andoperation.

Another proposed solution is described in RFC (Request For Comments)5441, “A Backward-Recursive PCE-Based Computation (BRPC) Procedure toCompute Shortest Constrained Inter-Domain Traffic Engineering LabelSwitched Paths,” April 2009. The solution proposed in RFC 5441 assumesthat the destination is known in a particular domain and area; howeverthis assumption is not always true. Moreover, the destination may bemulti-homed (meaning reachable through different areas and domains),which the RFC 5441 method cannot handle. Furthermore, the methoddescribed in RFC 5441 mandates a PCEP (Path Computation ElementProtocol) extension which understands the Virtual Shortest Path Tree(VSPT), which further complicates the method. Moreover, the VSPTapproach only addresses one destination at a time.

SUMMARY

A method in a router for participating in computation of aconstraint-based label switched path (LSP) that spans multiple areas toreach a destination, where the router is included within a first one ofthe areas, is described. In one embodiment, the router computes a pathsegment that meets a set of one or more constraints to at least oneborder router of the first area. The at least one border router lies ina path necessary to reach the destination. The router transmits a pathcomputation request message to a path computation element in a secondone of the areas. The path computation request message includes a set ofone or more attributes for each computed path segment that are used bythe path computation element to compute one or more path segmentstowards the destination of the constraint-based LSP. The router receivesa path computation reply message from the path computation element thatspecifies a set of one or more computed path segments that meet the setof constraints and that were computed by one or more path computationelements downstream from the router. The router stitches at least one ofthe set of computed path segments that are specified in the pathcomputation reply message with the path segment computed by the routerto form at least part of the constraint-based LSP.

In another embodiment, a router that resides in a first one of multipleareas participates in computation of a constraint-based LSP that spansmultiple areas. The destination also is in the first area. The routerreceives a path computation request message from a router residing in asecond one of the areas. The path computation request message includes aset of one or more attributes for each of a set of one or more pathsegments that were computed by the router in the second area to a set ofone or more border routers. The router computes a set of one or morepath segments to the destination using the set of attributes for each ofthe set of path segments that were computed by the router residing inthe second area. The router transmits a path computation reply messageto the router residing in the second area. The path computation replymessage specifies the set of computed path segments to the destinationand a set of one or more attributes for each computed path segment tothe destination.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by referring to the followingdescription and accompanying drawings that are used to illustrateembodiments of the invention. In the drawings:

FIG. 1 is a data flow diagram illustrating computing a constraint-basedLSP that spans across multiple areas according to one embodiment;

FIG. 2 illustrates an exemplary extension to the PCEP (PCE CommunicationProtocol) for encoding the seed information of a path segmentcalculation according to one embodiment;

FIG. 3 illustrates a network where the tailend router T is reachablethrough multiple areas according to one embodiment;

FIG. 4 illustrates the shortest path tree (SPT) equivalence property ofan SPF (shortest path first) heap according to one embodiment;

FIG. 5 illustrates the seed deposit timing property of an SPF heapaccording to one embodiment;

FIG. 6 illustrates the seed set reduction property of an SPF heapaccording to one embodiment;

FIG. 7 illustrates exemplary pseudo code of a relay timer logicaccording to one embodiment;

FIG. 8 illustrates an exemplary network where a constraint-based LSPspans across multiple areas in multiple autonomous systems according toone embodiment;

FIG. 9 is a flow diagram illustrating exemplary operations for computinga constraint-based LSP that spans across multiple areas according to oneembodiment; and

FIG. 10 is a flow diagram illustrating exemplary operations performed bya PCE in a destination area for computing a constraint-based LSP thatspans across multiple areas according to one embodiment.

DESCRIPTION OF EMBODIMENTS

In the following description, numerous specific details are set forth.However, it is understood that embodiments of the invention may bepracticed without these specific details. In other instances, well-knowncircuits, structures and techniques have not been shown in detail inorder not to obscure the understanding of this description. Those ofordinary skill in the art, with the included descriptions, will be ableto implement appropriate functionality without undue experimentation.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to effect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.“Coupled” is used to indicate that two or more elements, which may ormay not be in direct physical or electrical contact with each other,co-operate or interact with each other.

A method and apparatus for computing a constraint-based label switchedpath (LSP) that spans across multiple areas or multiple autonomoussystems is described. In one embodiment, for an LSP that is to spanacross multiple areas or multiple autonomous systems, the pathcomputation elements (PCEs) in the multiple areas or multiple autonomoussystems cooperate to determine the path (if one exists). An upstreamPCE, while incapable of performing the path computation for a tailend ofthe LSP outside of its domain, provides the history of its computationto its downstream PCE which then assumes the computation job. Thedownstream PCE may also send its history to another downstream PCE untilthe path is fully computed.

FIG. 1 is a data flow diagram illustrating computing a constraint-basedLSP that spans across multiple areas according to one embodiment. Theexemplary topology illustrated in FIG. 1 includes the area west 140 andthe area east 145 divided by a dashed line. Although only two areas areshown, the invention is not limited to only two areas as there may bemore than two areas that the LSP spans across. The router H 110 androuter B 115 are located within the area west 140. The router H 110 isthe headend of the LSP. The router T 125 is located within the area east145. The router T 125 is the tailend of the LSP. The router A 130 andthe router C 120 are border routers. Thus, the LSP is being computedfrom the headend router H 110 to the tailend router T 125.

The area west 140 includes the PCE 150 and the area east includes thePCE 155. The PCE 150 can be included within the router H 110, the routerB 115, the router A 130, the router C 120, or in another network devicewithin the area west 140. The PCE 155 can be included within the routerA 130, the router C 120, the router T 125, or in another network devicewithin the area east 145. The PCE 150 has access to only the informationin the TE database of the area west 140 (the headend area). Because ofthis, and due to the nature of IGP (Interior Gateway Protocol) (e.g.,OSPF (Open Shortest Path First), IS-IS (Intermediate System toIntermediate System)), the tailend router T 125 in area east 145 is notvisible to the PCE 150 in the area west 140.

The router A 130 and the router C 120 are area border routers (sometimesreferred herein as border nodes (BN)). An area border router lies in anecessary path to the destination in the next area or areas beyond(however it should be understood that although an area border may lie ina path to the destination, this path may not be the one ultimatelychosen if a more optimal route exists). As illustrated in FIG. 1, therouter A 130 and the router C 120 lie in paths to reach the router T 125from the router H 110. Specifically, there is a path from the router H110 to router A 130 to router T 125, and another path from the router H110 to router B 115 to router C 120 to router T 115.

In order to compute the constraint-based LSP across the areas west 140and 145, the PCE 150 performs part of the computation by computing pathsfrom the headend router H 110 to the border router A 130 and the borderrouter C 120 (assuming that these paths meet the constraints of theconstraint-based LSP). These computed paths are referred herein as pathsegments since they are a segment of a complete path to the tailendrouter 125. The PCE 150 then provides the result of that computation tothe PCE 155. The PCE 155 uses that information to conclude the pathcomputation to the tailend router T 125. Thus, the path computationproceeds as a relayed CSPF (Constrained Shortest Path First) job, one inthe area west 140 and the other in the area east 145. As describedherein, a PCE has the capability to generate and send path computationrequest (PCReq) messages, receive and process PCReq messages, generateand send path computation reply (PCRep) messages, and receive andprocess PCRep messages.

Since the router A 130 and router C 120 are border routers to the areaeast 145, they are chosen to be a choice of an initial seed set for theCSPF computation. The PCE 150 includes information that provides it witheach of the area's border routers (which can be provided by through IGPprotocols and their TE extensions). CSPF, or more generally SPF(Shortest Path First), is a seed based algorithm and the SPT (ShortestPath Tree) for the area west 140 is built on these seeds. At operation1.1, the PCE 150 computes a path segment from the headend router H 110to the router A 130 that meet the set of constraints for the LSP, andcomputes a path segment from the headend router H 110 to the router C120 that meet the set of constraints for the LSP.

At operation 1.2, the PCE 150 sends a path computation request (PCReq)message to the PCE 155 with information regarding its computation of thepath segments to router A 130 and router C 120 that allows the PCE 155to continue the path computation to the tailend router T 125. Thisinformation includes the path request information (e.g., the set ofconstraints) as well as path attributes of the computed segments to therouter A 130 and the router C 120 such as cost, bandwidth, admin-group,hop-count, etc. Using this information, the PCE 155 computes a pathtowards the tailend router T 125 that meets the set of constraints.

Although FIG. 1 illustrates a single PCE 155 in the area east 145, incertain circumstances there may be multiple PCEs in the area east 145.In such a circumstance, only one of the PCEs need to be sent the PCReqmessage to avoid the waste and contention of computation resources. Inone embodiment, the PCE 150 performs an election mechanism to select oneof the eligible PCEs. The elected PCE can be any router or can be adedicated PCE (it does not have to be a transit router). In oneembodiment, any tie-breaker algorithm can be used to perform theelection (e.g., choose the router with the highest or lowest router ID).

FIG. 2 illustrates an exemplary extension to the PCEP (PCE CommunicationProtocol), described in RFC 5440, “Path Computation Element (PCE)Communication Protocol (PCEP)”, March 2009, for encoding the seedinformation of a path segment calculation according to one embodiment.As illustrated in FIG. 2, the relay content extension format 210 is in aTLV (type-length-value) format. The type field 215 is a one byte valuethat indicates that this message is for a relayed CSPF computation. Thelength field 220 is a one byte value that provides the actual length ofthe extension. The node-id field 225 is a four byte value that providesthe border router's node identifier. Also included in the relay contentextension 210 are one or more sub-TLVs that encode the segmentinformation. Each sub-TLV includes a sub-type field 230, which is a onebyte field that encodes a value that indicates the sub-TLV includessegment information, a sub-length field 235, which is a one byte fieldthat encodes a length value of the sub-TLV (e.g., a length of 6), asegment identifier field 240, which is a one byte field that provides anidentifier for the segment (since a border router can have multiplesegment paths to it, this segment identifier allows for each segment tobe distinguished and is used when accommodating additive constraints), acost field 245 which provides the cost of the segment, and a hops-field250 which provides the number of hops on the segment. In one embodiment,the admin-group and bandwidth information is not carried in the relaycontent extension 210 since they can be learned from the standard pathrequest information fields.

Referring back to FIG. 1, sometime after receiving the PCReq message160, at operation 1.3, the PCE 155 of the area east 145 uses the pathinformation in the PCReq message 160 to the router A 130 and the routerC 120 when computing the path to the tailend router T. For example, thePCE 155 deposits the path information to its SPF heap and performs thepath computation to the tailend router T 125.

When performing the path computation, the PCE 155 may take advantage ofone or more properties associated with an SPF heap. One property of anSPF heap is that a heap with an initial seed is equivalent to that withmultiple intermediate seeds in any SPF stages for the destinations thathave not yet been reached (referred to as shortest path tree (SPT)equivalence). During normal SPF cycles, the heap will change and thepath tree will grow. At any particular SPF cycle, the path tree recordsthe reachability to certain destinations, which is important to genericSPF applications such as IGP routing protocols (e.g., OSPF, IS-IS). InIGP, all destinations must be included, whether they come out of theheap early or late, and none of those can be neglected. However, inCSPF, since only the targeted destinations are of importance,non-relevant records can be discarded during computation. Thus, theearly path tree records that are insignificant can be disregarded.Therefore, for the selected destinations, the expanded heap withmultiple seeds is equivalent with the heap at the initial stage. FIG. 4illustrates this concept. With normal SPF computation, the headed noderouter H 410 is used an initial seed to the SPF heap. The final SPTprovides reachability to the router A 415, router B 420, and to thetailend router T 425. If the computation uses the router A 415 androuter B 420 as deposit seeds, the computation will result in an SPTwith the same reachability for the tailend router T 425. The differencebetween the two SPTs is the reachability from the headend router H 410to the router A 415 and the router B 420.

Another property of an SPF heap is that the deposit time of seeds isinsensitive to destinations that have not yet been reached, providedthat the seeds carry the correct attributes such as cost and nexthop(referred to as the seed deposit timing property). This property meansindicates that the seed deposit time does not change its SPTcontribution for destinations that have not yet been reached. FIG. 5illustrates this concept. The exemplary network in FIG. 5 includes theheadend router 510, the router A 515, the router B 520, the router C525, and the tailend router T 530. The headend router 510 is directlycoupled with the router A 515 and the router B 520. The router B 520 isalso directly coupled with the router C 525, which is itself directlycoupled with the tailend router T 530. The router A 515 is also directlycoupled with the tailend router T 530. Because of this property, whencomputing a path to the tailend router T 530, an identical result isprovided when using the seed set of the router A 515 and the router B520, or when using the seed set of the router A 515 and the router C525.

Another property of an SPF heap is that the multiple seeds in the SPTequivalence property can further be reduced to those that constitute aset of nodes besides which the destinations are not viable (referred asthe seed set reduction property). This allows those seeds that will notcontribute to the path to be removed. FIG. 6 illustrates this concept.The exemplary network in FIG. 6 includes the headend router 610, routerA 615, router B 620, router C 625, router D 635, router E 640, and thetailend router T 630. The headend router H 610 is directly coupled withthe router A 615 and the router B 620. The router B 620 is also directlycoupled with the router C 625. The router C 625 is also directly coupledwith the router D 635 and the tailend router T 630. The router D 635 isalso directly coupled with the router E 640, and router A 615 is alsodirectly coupled with the tailend router T 630. For the reachability tothe tailend router T 630, the initial seed of the headend router H 610can be replaced with the router A 615 and the router B 620 per the SPTequivalence property. These two seeds can further be replaced with theseed set of router A 615, router C 625, and router D 635 per the seeddeposit timing property. Since D will not contribute to the path to thetailend router T 630, the seed set can further be reduced to the seedset of router A 615 and router C 625.

Sometime after finding finishing the computation to the tailend router T125, at operation 1.4, the PCE 155 sends a path computation reply(PCRep) message 165 back to the PCE 150. The PCRep message 165 includesits path segment information for the computed path to the tailend routerT 125. The PCE 150 then at operation 1.5, using the information in thePCRep message 165, maps the path segment to one of the router A 130 andthe router C 120 and stitches the segment to the one in the area west140 to form a complete path to the tailend router T 125. For example,assuming that the PCRep message 165 includes path segment informationfrom the router A 130 to the tailend router T 125, the PCE 150 maps thatsegment to the router A 130 and stitches the segments together such thatthe complete path is from the headend router H 110 to the router A 130to the tailend router T 125.

It should be understood that although the example illustrated in FIG. 1is for only two areas, the destination may be in an area further eastthan the area east 145. In such a case, the PCE 155 will relay the PCReqto a PCE further downstream, which will either find the targetdestination or continue to relay the job. The stitching proceeds in asimilar manner, but in a reversed order.

FIG. 1 illustrated the destination being in a single area. However, insome circumstances, the destination may be multi-homed and viablethrough multiple areas. FIG. 3 illustrates a network where the tailendrouter T 355 is reachable through multiple areas (area B 315 and area C320). Area A 310 includes the headend router H 330 and the PCE 332. AreaB 315 includes the PCE 334. Area C includes the PCE 336. Area D includesthe tailend router T 355 and the PCE 338. Area A 310 is connected withthe area B 315 through the border router AB 335, and is connected withthe area C through the border router AC 340. Area B 315 is connectedwith the area D 325 through the border router BD 345. Area C 320 isconnected with the area D 325 through the border router CD 350.

The computation of the path from the router H 330 performs in a similarway as described with reference to FIG. 1, however, to maximize the pathavailability and optimality, in one embodiment the path computationrequest message is sent to each neighboring area and to each area's PCEelect. Thus, the PCE 332 sends a PCReq message 360 to the PCE 334 andsends a PCReq message 362 to the PCE 336. These two PCReq messages aredifferent. The PCReq message 360 sent to the PCE 334 encodes the seedsof the routers between the headend router H 330 and the router AB 335and the PCReq message 362 sent to the PCE 336 encodes the seeds of therouters between the headend router H 330 and the router AC 340. The PCE334 and the PCE 336 perform their computation to the tailend router T355 based on the information in the PCReq messages 360 and 362respectively. The PCE 334 then sends the PCReq message 364 to the PCE338 and the PCE 336 sends the PCReq message 366 to the PCE 338. The PCE338 treats the received PCReq messages separately and computes a path tothe tailend router T 355 separately. The PCE 338 then transmits thePCRep message 370 to the PCE 334 and transmits the PCRep message 372 tothe PCE 336. The PCE 334 transmits the PCRep message 374 to the PCE 332and the PCE 336 transmits the PCRep message 376 to the PCE 332. Itshould be understood that the sending of multiple PCReq messages is notlimited to the PCE in the area of the headend. In other words, a PCE inan intermediate area can send multiple PCReq messages if they havemultiple border routers to multiple areas.

In one embodiment, since the PCE 332 may receive multiple responses thatencode a path to the tailend router T 355, the PCE 332 implements atimer to allow a reasonable wait time to collect all possible PCRepmessages to accommodate the potential of a race condition for themultiple paths to the destination. A PCE that receives a PCReq messageshould send a PCRep back to the requester whether it finds a path ornot. However, the PCRep message may take time to generate and it may belost during transit. Because of this, in some embodiments the requestingPCE initiates a relay timer so that it will not wait indefinitely if thePCRep message never arrives.

FIG. 7 illustrates sample pseudo code of the timer logic according toone embodiment. As illustrated in FIG. 7, the pseudo code is separatedinto three sections: sending a PCReq message, receiving a PCRep message,and the relay timer expiring. When sending a PCReq message, therequesting PCE, for each PCE elect of each border area, sends a PCReqmessage to that PCE elect and includes the path request information(e.g., the set of constraints) and the seeds of the border routers. Therequesting PCE then adds the PCE elect to a PCReq pending list andcreates a relay timer if one does not already exist.

Upon receiving a PCRep message, the requesting PCE looks up the sourceaddress of the PCRep and determines the path encoded in the PCRepmessage. The PCE then determines whether that path is better than aprevious path to the destination it has received (and sets the betterpath as the best path). The PCE removes the PCE that sent the PCRepmessage from the PCReq pending list. If that makes the PCReq pendinglist to be empty, then the relay timer is cancelled and if therequesting PCE is the headend (or in the headend area), then the processterminates, otherwise the requesting PCE sends a PCRep with the bestpath to an upstream PCE.

Upon the relay timer expiring, the requesting PCE cleans up the PCReqpending list For example, the requesting PCE deletes those entries forwhich the requesting PCE is still waiting for a PCRep message. If thePCReq pending list is empty, then the relay timer is cancelled and ifthe requesting PCE is the headend (or in the headend area), then theprocess terminates, otherwise the requesting PCE sends a PCRep with thebest path to an upstream PCE.

While FIG. 1 described an LSP spanning multiple areas in the sameautonomous system, an LSP can also span across multiple autonomoussystems. The computation of an LSP that spans across multiple autonomoussystems is similar to the computation of an LSP that spans acrossmultiple areas in the same autonomous system, with a few differences.One of the differences is that when a PCE sends a PCRep to a requestingPCE that is in a different autonomous system, it does not send explicithop-by-hop EROs (explicit route objects). Instead, it sends a loose EROwith path level characters such as cost metric. This ensures thatinformation is hidden from different autonomous systems while theend-to-end LSP can still be established.

Another difference is that the PCE election concept does not applyacross autonomous systems. In other words, if the PCE is in a differentautonomous system, the requesting PCE does not perform a PCE electionprocedure. In addition, there is no need to carry the autonomous systemnumber into the TE database. In one embodiment, the PCReq message andthe corresponding seeds are sent to each viable autonomous system peernode.

Another difference is that, unlike a multiple-area topology where aborder router sits over both areas, two autonomous system border routersneed a transit link to connect them together. The transit link needs tobe considered for an autonomous system border router (ASBR) when it isto send a PCReq message to its peer ASBR. The transit link'scharacteristics such as metric, hop count, bandwidth, must also be takeninto account of the seed value. For example, FIG. 8 illustrates anetwork where a constraint-based LSP spans across multiple areas inmultiple autonomous systems. As illustrated in FIG. 8, the area west 815of the autonomous system 810 includes the headend router 850, the routerA 815, the router C 830, and the PCE 850, and the area east 825 of theautonomous system 820 includes the router D 840, the tailend router T845, and the PCE 855. The router C 830 and the router D 840 areautonomous system border routers and are connected by the transit link835. The PCE 850 transmits a PCReq message 860 to the PCE 855 whichconsiders the characteristics of the transit link 835. The PCE 855considers the transit link 835 when it computing the path to the tailendrouter T 845 and responds with a PCRep message 865 to the PCE 850.

FIG. 9 is a flow diagram illustrating exemplary operations for computinga constraint-based LSP that spans across multiple areas according to oneembodiment. At operation 910, a PCE computes a path segment to one ormore border routers of one or more areas that meets a set ofconstraints. The PCE may be in the headend area and may initiate thecomputation. The PCE may also be in an intermediate area or in a tailendarea. If in an intermediate area or the tailend area, the PCE maycompute the path segments in response to receiving a path computationrequest message from a different PCE in a different area, which may bein a different autonomous system. The path computation request messageincludes one or more path segment attributes for one or more pathsegments that were computed by the requesting PCE and is used by the PCEwhen computing the path segments to its border routers. Flow moves fromoperation 910 to operation 915.

At operation 915, which is optional, the PCE determines whether there ismore than one PCE in each of the areas. If there is not, then flow movesto operation 925. If there is, then flow moves to operation 920 and foreach of the area(s) that have more than one PCE, the requesting PCEelects one of the PCEs (e.g., selects the PCE within the router havingthe highest or lowest router ID). Flow moves from operation 920 tooperation 925. If the areas are in different autonomous systems, in oneembodiment the operations of 915 and 920 are not performed.

At operation 925, the requesting PCE sends a path computation requestmessage to the PCE in each of the area(s). The path computation requestmessage includes attributes for each computed path segment computed pathsegment for that area. The path computation request message alsoincludes the path request information (e.g., the set of constraints forthe LSP). In one embodiment, the path computation request messageincludes the PCReq relay content extension illustrated in FIG. 210 toencode the attributes for the computed path segments. Flow moves tooperation 935.

At operation 935, the requesting PCE receives a path computation replymessage in response to the transmitted path computation request message.The path computation reply message includes the path segment informationthat is computed by a downstream PCE. Flow then moves to operation 940.

In one embodiment, if the path computation reply message was receivedfrom a downstream PCE that is in the same autonomous system, the pathcomputation reply message includes an explicit ERO; however if the pathcomputation reply message was received from a downstream PCE that is ina different autonomous system, the path computation reply messageincludes a loose ERO. If the path computation reply includes a looseERO, the requesting PCE recovers the path segment represented by theloose ERO. In one embodiment, the border router stores a record of thepath segment (a pre-computed ERO). When the reservation request (e.g.,RSVP request) arrives into the border router it already includes theEROs that are stored locally. This approach works quickly but requiresan RSVP implementation change. In another embodiment, the border routerdoes not store the explicit path segment; rather it is stateless. Whenrequested, the border router will query its own PCE to determine theEROs. This will result in the same EROs as the pre-computed EROapproach, assuming that the topology has not changed.

At operation 940, the requesting PCE maps the path segment to one of theborder routers and stitches the segment identified in the pathcomputation reply message to the path segment to that border router. Ifthe requesting PCE is in the headend area, then the stitched path willbe the complete path from the headend to the tailend. If the requestingPCE is in an intermediate area, then the stitched path will be a segmentof the complete path and the PCE will generate a path computation replymessage with the path segment information to send to its requesting PCE.

FIG. 10 is a flow diagram illustrating exemplary operations performed bya PCE in a destination area for computing a constraint-based LSP thatspans across multiple areas according to one embodiment. At operation1010, the PCE receives a path computation request message that includesattributes for one or more path segments that were computed by adifferent PCE on an upstream router. In one embodiment, the pathcomputation request message includes the PCReq relay content extensionillustrated in FIG. 210 to encode the attributes for the computed pathsegments. Flow then moves to operation 1015 where the PCE uses theinformation in the path computation request message to compute a pathsegment to the destination. Flow then moves to operation 1020 and thePCE sends a PCE reply message that includes path segment information forthe computed path segment.

In one embodiment, backup LSPs, bypass LSPs, or pass re-optimization, orany other path computation that requires the knowledge of an existingLSP has the information of that LSP included with the PCReq message andits path segment information. In the case where the LSP spans acrossmultiple autonomous systems, the upstream router hides the path segmentdetail from the downstream router.

In one embodiment, shared risk link group (SRLG) handling is nodifferent than that of a single autonomous system single area pathcomputation. Thus, provided that the SRLG information is available(e.g., through GMPLS (Generalized Multiprotocol Label Switching)), eachrelayed PCE can compute the correct PCE segment and the end-to-end pathshould meet the SRLG requirement.

As described herein, operations may refer to specific configurations ofhardware such as application specific integrated circuits (ASICs)configured to perform certain operations or having a predeterminedfunctionality or software instructions stored in memory embodied in anon-transitory computer readable medium. Thus, the techniques shown inthe figures can be implemented using code and data stored and executedon one or more electronic devices (e.g., router(s)). Such electronicdevices store and communicate (internally and/or with other electronicdevices over a network) code and data using computer-readable media,such as non-transitory computer-readable storage media (e.g., magneticdisks; optical disks; random access memory; read only memory; flashmemory devices; phase-change memory) and transitory computer-readablecommunication media (e.g., electrical, optical, acoustical or other formof propagated signals—such as carrier waves, infrared signals, digitalsignals). In addition, such electronic devices typically include a setof one or more processors coupled to one or more other components, suchas one or more storage devices (non-transitory machine-readable storagemedia), user input/output devices (e.g., a keyboard, a touchscreen,and/or a display), and network connections. The coupling of the set ofprocessors and other components is typically through one or more bussesand bridges (also termed as bus controllers). Thus, the storage deviceof a given electronic device typically stores code and/or data forexecution on the set of one or more processors of that electronicdevice. Of course, one or more parts of an embodiment of the inventionmay be implemented using different combinations of software, firmware,and/or hardware.

While the flow diagrams in the figures show a particular order ofoperations performed by certain embodiments of the invention, it shouldbe understood that such order is exemplary (e.g., alternativeembodiments may perform the operations in a different order, combinecertain operations, overlap certain operations, etc.).

While the invention has been described in terms of several embodiments,those skilled in the art will recognize that the invention is notlimited to the embodiments described, can be practiced with modificationand alteration within the spirit and scope of the appended claims. Thedescription is thus to be regarded as illustrative instead of limiting.

What is claimed is:
 1. A method in a router for participating incomputation of a constraint-based label switched path (LSP) that spans aplurality of areas to reach a destination, the router included within afirst one of the plurality of areas, the method comprising the steps of:computing a path segment that meets a set of one or more constraints toat least one border router of the first area, wherein the at least oneborder router lies in a path necessary to reach the destination;transmitting a path computation request message to a path computationelement in a second one of the plurality of areas, wherein the pathcomputation request message includes a set of one or more attributes foreach computed path segment that are used by the path computation elementto compute one or more path segments towards the destination of theconstraint-based LSP; receiving a path computation reply message fromthe path computation element that specifies a set of one or morecomputed path segments that meet the set of constraints and that werecomputed by one or more path computation elements downstream from therouter; and stitching at least one of the set of computed path segmentsthat are specified in the path computation reply message with the pathsegment computed by the router to form at least part of theconstraint-based LSP.
 2. The method of claim 1, wherein the step ofcomputing the path segment that meets the set of constraints to at leastone border router of the first area is responsive to receiving a pathcomputation request message from a different router that includes a setof one or more path segment attributes for a set of one or more pathsegments computed by the different router.
 3. The method of claim 2,wherein the path computation request message transmitted to the pathcomputation element in the second area includes the set of path segmentattributes for the set of path segments that were computed by thedifferent router.
 4. The method of claim 1, wherein the set of pathsegment attributes includes cost and hop-count.
 5. The method of claim4, wherein the set of path segment parameters further includes bandwidthand admin-group.
 6. The method of claim 1, further comprising the stepof: initiating a timer for receiving a path computation reply message inresponse to the transmitted path computation request message.
 7. Themethod of claim 1, wherein the second area is in a different autonomoussystem than the first area.
 8. A method in a router for participating incomputation of a constraint-based label switched path (LSP) that spans aplurality of areas to reach a destination, wherein the router resides ina first one of the plurality of areas and the destination is in thefirst area, the method comprising the steps of: receiving a pathcomputation request message from a router residing in a second one ofthe areas, the path computation request message including a set of oneor more attributes for each of a set of one or more path segments thatwere computed by the router in the second area to a set of one or moreborder routers; computing a set of one or more path segments to thedestination using the set of attributes for each of the set of pathsegments computed by the router residing in the second area; andtransmitting a path computation reply message to the router residing inthe second area, the path computation reply message specifying the setof computed path segments to the destination and a set of one or moreattributes for each computed path segment to the destination.
 9. Themethod of claim 8, wherein the set of attributes included in the pathcomputation request message includes cost and hop-count for each one ofthe set of path segments computed by the router in the second area, andwherein the set of attributes included in the path computation replymessage includes cost and hop-count for each one of the set of pathsegments to the destination computed by the router in the first area.10. The method of claim 8, wherein the router residing in the secondarea is in a same autonomous system as the router residing in the firstarea.
 11. The method of claim 8, wherein the router residing in thesecond area is in a different autonomous system as the router residingin the first area, and wherein the set of one or more border routers areautonomous system border routers (ASBRs) and wherein the router residingin the first area is an ASBR.
 12. The method of claim 11, wherein thestep of computing the set of one or more path segments to thedestination also considers a set of one or more characteristics of alink between each border router and the router residing in the firstarea.
 13. An apparatus to participate in computation of aconstraint-based label switched path (LSP) that spans a plurality ofareas to reach a destination, the apparatus comprising: a routerconfigured to perform the following: compute a path segment that meets aset of one or more constraints to at least one border router of thefirst area, wherein the at least one border router lies in a pathnecessary to reach the destination; transmit a path computation requestmessage to a path computation element in a second one of the pluralityof areas, wherein the path computation request message includes a set ofone or more attributes for each computed path segment that are used bythe path computation element to compute one or more path segmentstowards the destination of the constraint-based LSP; receive a pathcomputation reply message from the path computation element thatspecifies a set of one or more computed path segments that meet the setof constraints and that were computed by one or more path computationelements downstream from the router; and stitch at least one of the setof computed path segments that are specified in the path computationreply message with the path segment computed by the router to form atleast part of the constraint-based LSP.
 14. The apparatus of claim 13,wherein the router is to compute the path segment that meets the set ofconstraints to at least one border router of the first area responsiveto receipt of a path computation request message from a different routerthat includes a set of one or more path segment attributes for a set ofone or more path segments computed by the different router.
 15. Theapparatus of claim 14, wherein the path computation request message thatis to be transmitted to the path computation element in the second areais to include the set of path segment attributes for the set of pathsegments that were computed by the different router.
 16. The apparatusof claim 13, wherein the set of path segment attributes includes costand hop-count.
 17. The apparatus of claim 16, wherein the set of pathsegment parameters further includes bandwidth and admin-group.
 18. Theapparatus of claim 13, wherein the router is further configured toinitiate a timer for receipt of a path computation reply message inresponse to the path computation request message that is to betransmitted.
 19. The apparatus of claim 13, wherein the second area isin a different autonomous system than the first area.
 20. An apparatusto participate in computation of a constraint-based label switched path(LSP) that spans a plurality of areas to reach a destination, theapparatus comprising: a router configured to perform the following:receive a path computation request message from a router residing in asecond one of the areas, the path computation request message to includea set of one or more attributes for each of a set of one or more pathsegments that were computed by the router in the second area to a set ofone or more border routers; compute a set of one or more path segmentsto the destination using the set of attributes for each of the set ofpath segments computed by the router residing in the second area; andtransmit a path computation reply message to the router residing in thesecond area, the path computation reply message to specify the set ofcomputed path segments to the destination and a set of one or moreattributes for each computed path segment to the destination.
 21. Theapparatus of claim 20, wherein the set of attributes included in thepath computation request message is to include cost and hop-count foreach one of the set of path segments computed by the router in thesecond area, and wherein the set of attributes included in the pathcomputation reply message is to include cost and hop-count for each oneof the set of path segments to the destination computed by the router inthe first area.
 22. The apparatus of claim 20, wherein the routerresiding in the second area is to be in a same autonomous system as therouter residing in the first area.
 23. The apparatus of claim 20,wherein the router residing in the second area is to be in a differentautonomous system as the router residing in the first area, and whereinthe set of one or more border routers are autonomous system borderrouters (ASBRs) and wherein the router residing in the first area is anASBR.
 24. The apparatus of claim 23, wherein the router is to consider aset of one or more characteristics of a link between each border routerand the router residing in the first area to compute the set of one ormore path segments to the destination.